/**
 * File: d:\工作\上海项目\上海1\中欧\code\vue.config.js
 * Project: d:\工作\上海项目\上海1\中欧\code
 * Created Date: 2020-10-09 09:59:15
 * Author: Wang
 * -----
 * Last Modified:  2020-10-09 16:18:18
 * Modified By: Wang
 * -----
 * Copyright (c) 2020 Hisw
 * ------------------------------------
 * Javascript will become your nightmare in your life!
 */
const path = require('path')

const packageInfo = require('./package.json'); // 这里拿到package.json的相关信息
const Timestamp = new Date().getTime();
module.exports = {
  // 在npm run build 或 yarn build 时 ，生成文件的目录名称（要和baseUrl的生产环境路径一致）（默认dist）
  outputDir: 'dist',
  // 用于放置生成的静态资源 (js、css、img、fonts) 的；（项目打包之后，静态资源会放在这个文件夹下）
  assetsDir: 'static',
  // 如果你不需要生产环境的 source map，可以将其设置为 false 以加速生产环境构建。
  productionSourceMap: false,
  // 版本号
  filenameHashing: true,
  // webpack-dev-server 相关配置
  devServer: {
    host: '0.0.0.0',
    port: 80,
    proxy: {
      // detail: https://cli.vuejs.org/config/#devserver-proxy
      '/api': {
        //target: `http://localhost:8080/hisw`,
        // target: `http://localhost:8093`,
        target: `http://222.73.81.2:15393`,
        changeOrigin: true,
        pathRewrite: {
          '^/api': '/api'
        }
      }
    },
    disableHostCheck: true
  },
  css: {
    extract: {
      filename: `static/css/[name].${Timestamp}.css`,
      chunkFilename: `static/css/[name].${Timestamp}.css`
    },
    loaderOptions: {
      // 向 CSS 相关的 loader 传递选项 
      less: {
        javascriptEnabled: true
      }
    }
  },
  configureWebpack: { // webpack 配置
    output: { // 输出重构  打包编译后的 文件名称  【模块名称.版本号.时间戳】
      filename: `static/js/[name].${Timestamp}.js`,
      chunkFilename: `static/js/[name].${Timestamp}.js`
    },
  },
  // 修改打包后img文件名
  chainWebpack: config => {
    config.module
      .rule('images')
      .use('url-loader')
      .tap(options => {
        return {
          limit: 4096,
          fallback: {
            loader: 'file-loader',
            options: {
              name: `static/img/[name].${Timestamp}.[ext]`
            }
          }
        };
      })
  },
  pages: {
    index: {
      // page 的入口
      entry: 'src/main.js',
      // 模板来源
      template: 'public/index.html',
      // 在 dist/index.html 的输出
      filename: 'index.html',
      // 当使用 title 选项时，
      // template 中的 title 标签需要是 
      title: '页面title',
      // 在这个页面中包含的块，默认情况下会包含
      // 提取出来的通用 chunk 和 vendor chunk。
      chunks: ['chunk-vendors', 'chunk-common', 'index'],
      meta: { revised: `${packageInfo.version}` }
    }
  },
  pluginOptions: {
    "style-resources-loader": {
      preProcessor: "less",
      patterns: [
        //这个是加上自己的路径，
        //注意：试过不能使用别名路径
        path.resolve(__dirname, "./src/assets/css/variable.less")
      ]
    }
  }
}